// databasemanager.h
#pragma once

#include <QObject>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QDebug>
#include <QTextCodec>
class DatabaseManager : public QObject
{
    Q_OBJECT

public:
    /// 获取单例实例
    static DatabaseManager& instance();

    /// 初始化数据库连接
    bool init(const QString& dbPath = "default.db");
    /// 关闭数据库连接
    void close();
    /// 执行SQL语句（无返回结果）
    QSqlQuery *executeQuery(const QString& query, const QVariantMap& params = QVariantMap());
    ///表是否存在
    bool tableExists(const QString& tableName);
    /// 获取数据库错误信息
    QString lastError() const;
    QSqlDatabase get_db();


private:
    explicit DatabaseManager(QObject* parent = nullptr);
    ~DatabaseManager();

    QSqlDatabase m_db;        // 数据库连接对象
    QString m_connectionName; // 数据库连接名称
    QString m_lastError;      // 最后一条错误信息
};
